Active trace assertion based verification system

ABSTRACT

A computer processes simulation data indicating values of circuit signals as functions of simulation time to determine whether a circuit exhibits a property defined by an assertion. The assertion expresses the property as a sequence of expressions, each a function of one or more variables, where each variable represents a value of one or more signals or a value of another sequence of expressions. The assertion statement separately defines an evaluation time for each expression, a particular simulation time at which the expression is to be evaluated. Each expression must evaluate true if the circuit has the property. The computer produces a display including a representation of each expression of the property including a separate variable symbol for each of its variables. For each expression that evaluated false, the computer identifies each variable that caused that expression to evaluate false and distinctively marks that variable&#39;s symbol relative to other variable symbols within the display. For each expression that evaluated true, the computer identifies the evaluation time contributing the fulfillment of assertion property. The computer also annotates the representation of each expression with its corresponding evaluation time and annotates each displayed variable symbol with a value of the variable it represents.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The invention relates in general to assertion based verification and inparticular to a system for analyzing the output of a circuit simulatorto determine whether a circuit design possesses assertion properties,and whether it violates or fulfills the assertion properties, and forgenerating a display helping a user trace sources of the assertionproperty violations and fulfillments.

2. Description of Related Art

A circuit designer initially employs a hardware description language(HDL) such as Verilog to describe the behavior of an integrated circuitor a portion of an IC, using HDL statements to define logicalrelationships between signals. The designer then uses a computer-aidedsynthesis tool to create a gate level circuit design describing thecircuit as a set of interconnected instances of standard circuitcomponents (“standard cells”) such as transistors, logic gates andmemories. After producing the gate level description, the designer usescomputer-aided placement and routing tools to generate an integratedcircuit (IC) layout design, providing a guide for IC fabrication byindicating the structure, position and orientation of each cell withinthe IC and indicating the routes signal paths follow between the cellterminals. The HDL description is further updated to include models ofthe temporal behavior signal paths interconnecting cell terminals.

To determine whether the circuit described by an HDL file at any stageof the design process will behave as expected, a designer can program acircuit simulator to simulate its response to a set of input signals. Asimulator program (a “testbench”) includes the HDL description of thecircuit, specifies the time-varying behavior of the circuit's inputsignals, indicates which of the circuit's input, internal and outputsignals are to be monitored during the simulation, and specifies variousother parameters of the simulation. As it simulates the circuit, thesimulator produces a “dump file” indicating the behavior of themonitored signals over time. The designer can use debugging tools tostudy the circuit behavior represented by the dump file to determinewhether the circuit will behave as expected.

As circuits grow larger and more complex, it has become increasinglydifficult and time consuming to fully test and debug circuit designsusing simulation alone. In recent years, designers have begunsupplementing simulation with “assertion based verification”. Assertionsdescribe certain properties of a circuit that are expected to hold true.For example, an assertion may indicate that a property of the outputdata of an adder should always match the sum of its input data valueswithin some specified time range after the adder is clocked. Assertionbased verification tools external to a simulator can evaluate suchassertions based on the signal data included in the dump file, providedthat the dump file contains all signal data needed to evaluate theassertion.

A designer may incorporate “assertion statements” into the HDLdescription of a circuit executed by a simulator which do not affect thenature of the circuit described by the HDL design, but which tell thesimulator to determine whether the circuit exhibits various propertiesthe assertion statements describe and to report any instance in which aproperty fails to hold true. Thus even when the simulator is notprogrammed to include signal data need to evaluate an assertion amongthe data describing “observable” signals normally recorded in the dumpfile, the simulator can nonetheless monitor those signals and report anyproperty violation including values of any signals needed to evaluatethe property at the time of the violation. U.S. Patent ApplicationPublication 2006/0085774 filed Oct. 14, 2004 teaches an assertion reportproduced by a simulator.

Generally, there are two kinds of assertions. Concurrent (also called“declarative”) assertions state that a given property must always betrue throughout a simulation, while immediate assertions apply only fora limited time, or under specified conditions. The following exampleillustrates a typical syntax of a declarative assertion statement. Theassert statement specifies that the property, test_adder, should yieldFALSE if it is violated, or yield TRUE if it is fulfilled.

-   -   assert property (test_adder);

A testable property, such as test_adder, within an assertion may be afunction of one or more signal values at specific times s can be asimple Boolean expression such as, for example,

property p0;   @(posedge clk)   t1 + t2 >= 1; end propertyThis expression indicates that the sum of values represented by signalst1 and t2 should be greater than or equal to 1 on the positive edge ofthe CLK signal. A property can also be in the form of a “sequence” ofexpressions to be evaluated in increasing order of time, such as forexample,

property p1;   @(posedge clk)   ((((t1+t2) >= 1)   ##1:3 ((t1+bus2) >=(bus1 − t2) +2)))   ##2 ((bus1 +(t1 && !t2)) <=bus2))   ##1:3 (s1 ors2); end propertyThe above property indicates the following:

1. On the positive edge of a clock signal clk: the expressiont1+t2>=1should be TRUE.

2. On one of the next three clk signal edges, the expression(t1+bus2)>=(bus1−t2)+2) should become TRUE,

3. Two clock cycles later, the expression (bus1+(t1 && !t2))<=bus2should be TRUE.

4. On one of the next three clk signal edges, the expression (s1 or s2)should become TRUE.

The p1 property will be FALSE if any one of its five expressions areFALSE and will be TRUE only if each of the five expressions is TRUE.Note that the simulator will require many clock cycles to evaluate thefull expression.

Thus the assertion not only defines a property using a sequence ofexpressions, but it also defines an evaluation time corresponding toeach expression, wherein the “evaluation time” is a simulation time atwhich the expression evaluates true or false. For example the propertyp1 term

##1:3((t1+bus2)>=(bus1−t2)+2)))

means that the evaluation time for expression ((t1+bus2)>=(bus1−t2)+2)should be either on the first, second or third clock signal clk edgefollowing the evaluation time of the preceding expression (t1+t2)>=1. Ifthe expression ((t1+bus2)>=(bus1−t2)+2) evaluates true on any of thosethree clock edges, then its “evaluation time” is the simulation timecorresponding to the first one of those three clock signal edges. If theexpression ((t1+bus2)>=(bus1−t2)+2) fails to evaluate true on any ofthose three clock edges, then its “evaluation time” is the simulationtime corresponding to the last one of those three clock signal edges.The code “#1:3” thus defines the evaluation time of the expression.

One sequence may be nested within another. For example in the aboveexpressions s1 and s2 are names of separately defined sequences. Forexample sequence s1 may be defined by the following code:

sequence s1;   ((t1 == 1) ##3 ((bus1 >2) && (t2 == 1)); end sequenceThus a circuit property is expressed as a sequence of one or moreexpressions, each of which is a function of one or more variables, suchas t1, bus1 or s1, each representing the value of either a signal, agroup of signals or of another sequence. Each expression of a propertyis evaluated at a corresponding evaluation time defined by theassertion.

An assertion statement causes a simulator to report when a simulatedcircuit fails to exhibit the property and to report the states of thesignals that affect the property evaluation. By providing targets forformal verification, assertions improve controllability by improvingtest coverage and observability, however although a designer candetermine from an assertion message that a circuit design failed toexhibit a particular property at a particular time during thesimulation, the message does not directly indicate where the source ofthe error lies in the circuit design. To determine that, the designerneeds to analyze both the assertion statement and the circuit design totrace the error back to its source. What is needed is a system forhelping the designer does that.

SUMMARY OF THE INVENTION

An assertion expresses an expected property of a simulated circuit as anexpression or a series of expressions, each a function of one or morevariables, where each variable is either one of the signal values or avalue of another (nested) expression or expressions. The assertionseparately defines an evaluation time for each expression, wherein theevaluation time is a particular simulation time at which the expressionis to be evaluated based on values of circuit signals at that particularsimulation time. Each expression of a property must evaluate true if thecircuit has the property.

In accordance with the invention, a computer displays a separaterepresentation of each expression of a property, including a separatevariable symbol for each variable of each expression. For eachexpression that evaluated false, the computer identifies each variablethat likely caused that expression to evaluate false and distinctivelymarks that variable's symbol within the display, for example byhighlighting the variable symbol. For each expression that evaluatedtrue, the computer identifies the value for each variable thatcontributes to the fulfillment of the expression. The computer alsoannotates the representation of each expression with its correspondingevaluation time and annotates each displayed variable symbol with avalue of the variable it represents. When a user selects a variablesymbol representing a nested sequence and requests a display of thenested sequence, the computer generates that display including arepresentation of each expression of the nested sequence and symbols foreach variable of those expressions, distinctively marking the symbol ofany variable likely to have caused any expression of the nested sequenceto evaluate false.

The invention thus helps a user determine why a circuit failed toexhibit an expected property or how a circuit fulfilled an expectedproperty.

The claims appended to this specification particularly point out anddistinctly claim the subject matter of the invention. However thoseskilled in the art will best understand both the organization and methodof operation of what the applicant(s) consider to be the best mode(s) ofpracticing the invention by reading the remaining portions of thespecification in view of the accompanying drawing(s) wherein likereference characters refer to like elements.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a data flow diagram illustrating a system in accordance withthe invention for simulating a circuit and for helping a user debug thecircuit design.

FIGS. 3-11 depict displays produced in accordance with the invention.

FIGS. 12-18 depict example symbols that may be employed in a displayproduced in accordance with the invention.

FIG. 19 depicts a display produced in accordance with the invention bythe computer of FIG. 1.

DETAILED DESCRIPTION OF THE INVENTION

The invention relates to a system employing assertion based verificationfor analyzing and displaying results of a circuit simulation and forhelping a user trace sources of assertion property violations. Thefollowing describes an exemplary mode of practicing the invention asrecited in the claims appended to this specification. Although thefollowing description includes numerous details in order to provide athorough understanding of the exemplary mode, it will be apparent tothose of skill in the art that other modes of practicing the inventionneed not necessarily incorporate all such details.

FIG. 1 is a data flow diagram illustrating a system 10 for simulating acircuit described by a hardware description language (HDL) file 12 andfor helping a user verify the circuit design. A circuit simulator 14,programmed by a testbench 16 including HDL file 12 simulates theresponse of the circuit described by the HDL file in response to inputsignal patterns described by test bench 16 to produce a dump file 18indicating times during the simulation at which various circuit signalschange state, and the states to which they change. In addition tostatements describing the circuit to be simulated, HDL file 12 includesassertion statements which may be automatically generated byconventional computer-aided formal verification tools. The assertionstatements do not affect the nature of the circuit described by HDL file12, but each assertion statement specifies a circuit property and tellssimulator 14 to monitor the circuit behavior for conformance to thatproperty and to include a report in dump file 18 whenever the simulatordetects a property referenced by an assertion statement fails to holdtrue. The report indicates the assertion statement that was violated andindicates values of any signals needed to evaluate the assertionstatement.

In accordance with the invention, a conventional computer 20 programmedby an active trace verification program 22 provided on computer-readablemedia 24 such as for example, a compact disk, hard disk, USB drive orother media, processes dump file 18, HDL file 12 and an assertion file26 describing various assertion statements to generate displays on adisplay monitor 28 in response to user input. As discussed below, thedisplays help the user to determine the cause of any property violationor fulfillment.

Computer 20 initially processes dump file 18 and assertion file 26 todisplay a window as illustrated in FIG. 2 including a text display ofnames of all assertion statements included in assertion file 26. In thisexample the assertion statements are named a_s1, a_s2, a_s3, aa1, aa2and aa3. File 26 organizes the assertion statements into a hierarchicalfile structure, and display 29 reflects that file structure. A sourcecode window to the right represents the corresponding assertionstatement. A user can select an assertion in the source code window andclick the forward arrow 30 or backward arrow 31 to increase or decreasethe simulation time indicated in box 32. In the example of FIG. 2, theuser has selected assertion a_s2 and clicked forward arrow 30 toincrease the simulation time.

When the user then mouse clicks to select the highlighted a_s2 assertionname, computer 20 displays a pop-up menu (not shown) allowing the userto select a menu item “Assertion Active Trace”. Computer 20 responds tothe menu item selection by generating the “Assertion Active Trace”window illustrated in FIG. 3 which initially includes a representationof assertion statement a_s2 including a representation of the propertyit invokes. The user-selected selected simulation time (25000) appearsin a box 34. Computer 20 processes dump file 18 to evaluate the varioussignals and expressions within the property statement shown in theactive trace window and then annotates the property statement as shownin FIG. 3. In this example, property p1 includes a sequence ofexpressions, each of which should hold true if the circuit has theproperty. The property statement defines an evaluation time for thefirst expression (t1+t2>=1) by indicating that the expression should beevaluated using signal values from the dump file as of a positive edgeof a clock signal (clk) which occurred at simulation time 5000 nsec.Computer 20 annotates the evaluation time (5000 nsec) for that firstexpression in a box 36 above the expression and indicates the states ofthe clk, t1 and t2 signals as of that time in boxes 38 below the signalnames. Evaluating expression (t1+t2>=1) as of its defined evaluationtime, computer 20 finds the expression to be true and adds a TRUE symbol40 to the display below that expression to indicate that the expressionis true.

Property p1 also defines an evaluation time for the next expression(t1+bus2)>=(bus1−t2)+2) of the property sequence using the code “##1:3”.This code indicates that on at least one of the first, second or thirdedges of the clk signal following the edge occurring at the evaluationtime 5000 nsec of first expression (t1+t2>=1), the next expression(t1+bus2)>=(bus1−t2)+2) should become TRUE. Computer 20 thereforeevaluates that next expression on subsequent edges of the clk signaluntil it finds the expression first evaluated TRUE on an edgecorresponding to simulation time 9000. Computer 20 annotates theexpression with the TRUE symbol 42 and with the evaluation time 9000 asseen in box 44.

The code “##2”preceding next expression (bus1+(t1 && !t2)) of the p1property sequence indicates that on the second clock edge after theevaluation time 9000 of the preceding expression, the expression(bus1+(t1 && !t2))<=bus2 should become TRUE. Computer 20 finds that itdid become TRUE on that clock signal edge (at simulation time 13000),and therefore annotates that expression with its evaluation time 13000in a box 46 and with a TRUE symbol 48 proximate to the expression.

Finally property P1 holds that its last expression (s1 or s2) shouldbecome TRUE on one of the first, second or third clock signal positiveedges after the evaluation time (13000) of the preceding expression. Inthis case computer 20 determined that the expression (s1 or s2) remainedFALSE on each of those three clock edges and therefore annotated theexpression with a FALSE symbol 51 and, in box 50, with its evaluationtime, the simulation time (25000 ns) of occurrence of the third clk edgefollowing the evaluation time 13000 of the preceding sequenceexpression.

Computer 20 displays at the top of the Assertion Active Trace window theevaluation times 5000 and 25000 of the first and last expressions of theproperty statement. The evaluation time for the assertion is defined asthe evaluation time (25000) of the last expression of its property andthe circuit is considered to have violated the property described by theassertion at simulation time 25000.

The user can press an EXPAND button 54 to request computer 20 to modifythe display of FIG. 3 as shown in FIG. 4 to show a next lower level ofsubexpression evaluations. Boxes 55-58 show the evaluations ofsubexpressions (t1+t2), (t1+bus2), (bus1−t2+2) and (bus1+(t1 && !t2)),respectively. The user can revert to the display of FIG. 3 by clickingon a SHRINK button 59.

Referring to FIG. 4, the user can press an EXPAND ALL button 60 torequest computer 20 to modify the display of FIG. 3 as shown in FIG. 5wherein the lowest level subexpression evaluations are shown. Boxes55-58 show the evaluation of subexpressions (t1+t2), (t1+bus2), (bus1−t)and (!t2) respectively. The user can revert to the display of FIG. 3 byclicking on SHRINK button 59.

Referring again to FIG. 3, in the definition of property p1, variablest1, t2, bus1, bus2 represent values of one or more signals. Computer 20annotates the display using boxes 38 to display the symbol values at therelevant simulation times. Variables s1 and s2 represent values ofnested sequences as indicated by symbols 52 below the sequence names,and computer 20 must evaluate sequences s1 and s2 in order to evaluatethe expression (s1 or s2). Since both sequences s1 and s2 evaluatedfalse, expression (s1 or s2) evaluated false. To provide the user withan indication as to why expression (s1 or s2) evaluated false, computer20 highlights the display of both variable symbols s1 and s2 since itwas necessary for the sequences referenced by both variables to evaluatefalse in order for the expression (s1 or s2) to evaluate false.Highlighting variables that are likely candidates for causing theassertion failure helps the user to trace the source of the propertyfailure. While in the preferred embodiment of the invention, such likelycandidates are highlighted, it should be understood that they can bedistinctively marked in other ways, such as for example by setting themto distinctive colors.

The annotations of the expression (s1 or s2) tell the user that thesimulated circuit failed to satisfy that expression of property p1 attime 25000, and might therefore like to view representations of thehighlighted nested sequences s1 and s2 that are likely causes of thefailure to determine which expressions of those sequences failed. Torequest an annotated display of sequence s1, the user double clicks onthe si symbol, and computer 20 responds by modifying the display to addthe sequence si definition display 62 as shown in FIG. 6.

FIG. 6 shows sequence s1 displayed with its expressions annotated bytheir evaluation times (boxes 62) and signals annotated by their values(boxes 64). Symbols (boxes 66) under various expressions indicatewhether the expressions are TRUE or FALSE. Since the expression((bus1>=2)&&(t2==1)) evaluated FALSE, and since variable t2 was a likelycandidate for causing the false evaluation, computer 20 highlights thet2 signal symbol so that the user can see the state of signal t2 at time25000 nsec was a likely source of the property failure. The user canalso see that to satisfy the subexpression (t2==1), the state of signalt2 should have been “1” instead of “0”.

The user may click a BACK button 68 to revert to a previous display andthen request an annotated display of sequence s2 by double clicking onS2 below the s2 symbol. Computer 20 responds by adding the sequence s2definition display 72 as shown in FIG. 7. Note that the computer hashighlighted signal symbols t1 and t2 since an error in either signalcould have caused the failure in expression (t1=t2). The user can nowdeduce, based on the information drawn from the display of FIG. 5 thatthe state of signal t2 at time 25000 should have been “1” instead of“0”. The user may then employ conventional means to debug the circuitdesign to determine whether there is a design flaw resulting in an errorin signal t2 at time 25000. The designer may also choose to review thebasis for making assertion a_S2 to determine whether the assertionproperty definition requiring signal (t1==t2) and (t2==1) at time 25000was flawed.

The invention allows the user to alternatively select a “TemporalDebugging” window display as illustrated in FIG. 8 which depicts anassertion in a graphical format. Nodes of the graph include a symbol 74representing the assertion a_s2, a symbol 76 representing property p1,and symbols 78A-78D representing the four expressions of property p1.The horizontal axis of the window includes a time scale 80 annotatedwith the evaluation times 81 of the various expressions. The assertionsymbol 74, property symbol 76 and expression symbols 78A-78D all resideat positions along the horizontal axis representing their evaluationtimes. The evaluation time codes corresponding to the expressions appearin boxes 85 horizontally positioned over vertical dashed lines dividingthe display into evaluation time zones. Each expression symbol 78A-78Dis annotated with the text 82 of its expression and with an appropriateTRUE or FALSE symbol 86 indicating the result of the expressionevaluation. The assertion symbol 74, the property symbol 76 andexpression symbol 78D are all highlighted to indicate FALSE evaluations.The variables s1 and s2 in the text annotation of symbol 78D are alsohighlighted to indicate that they are candidates for the property matfailure.

When the user selects any node symbol 78A-78D representing an expressionand selects a menu item requesting an expansion of the expression,computer 20 adds a subgraph to the display representing the expressionin more detail. In the example of FIG. 8, the user has requested anexpansion of the expression represented by symbol 78D and computer 20responded by adding symbols 79A and 79B representing the two sequencevariables s1 and s2 included in the expression (s1 or s2) represented byexpression symbol 78D. Symbols 79A and 79B are vertically positionedbelow symbol 78 and connected to symbol 78 by solid lines to indicatethat s1 and s2 are variables of the expression represented by symbol78D. Symbols 79A and 79B are horizontally positioned in the 25000 nsectime zone to indicate that each has evaluation time 25000.

FIG. 9 shows the resulting display after the user has expanded theexpressions represented by nodes 78A-78C. A node symbol, such as symbol80, representing a subexpression of the expression represented by itsparent node 78A resides below its parent nodes. A node symbol 82residing below its parent expression node 80 represents a signal (t1)and its value (1) at a time 5000 appearing next to the node symbol. Anode symbol 84 below a parent expression node 78A represents a constantof value indicated by the node symbol. A user can remove a subgraphunder an expression node, such as the subgroup residing under expressionnode 78A by selecting the expression node and selecting a mouse menucommand (not shown).

FIG. 10 shows a Temporal Debugging Window in which the user hasrequested the subgraph display for s1 sequence symbol 78E and FIG. 11shows a Temporal Debugging Window in which the user has requested thesubgraph display for s2 sequence symbol 78F.

The graph in the Temporal Debugging Window can employ various nodesymbols to represent various types of functions. FIGS. 12-19 illustratevarious node symbol examples. FIG. 12 is an assertion symbol. Theassertion name annotates the symbol, and its value resides next to it.FIG. 13 is a sequence or property symbol with the property nameannotating the symbol and its value residing next to it. FIG. 14 is afunction symbol, with the function name residing in the symbol. FIG. 15is a logic symbol with the logic operator (such as an “or” or a “!”)annotating the symbol, the value of the logic operation residing next tothe symbol and the expression string that uses the logic operatorresiding above the symbol. FIG.16 is a signal symbol with the name ofthe signal annotating the symbol and the signal's value residing next toit. FIG. 18 is an arithmetic operator function with the operator nameannotating the symbol and the value of the arithmetic operation residingnext to the symbol. FIG. 18 is a repetition symbol with the repetitionnumber annotating the symbol and the repetition string defining therepletion operation residing above it.

When the user uses a mouse to select a signal symbol in either anAssertion Active Trace window or a Temporal Debugging window and selectsa “trace signal” command from a mouse menu, the computer processes HDLfile 16 to produce a schematic diagram of the fan-in cone of the signalrepresented by the signal symbol. For example, FIG. 19 shows a pop-upwindow the computer might display when the user selects the t2 signalsymbol of FIG. 11 and invokes a trace signal command. The fan-in cone ofthe signal t2 includes only those circuit components producing signalsthat can influence the value of signal t2.

When the user uses a mouse to select a signal symbol in either anAssertion Active Trace window or a Temporal Debugging window and selectsa “trace driver” command from a mouse menu, the computer processes HDLfile 16 to generate a display of the particular HDL code that controls avalue of the signal represented by the selected signal symbol.

When the user uses a mouse to select a signal symbol in either anAssertion Active Trace Window or a Temporal Debugging Window and selectsan “edit” command from a mouse menu, the computer opens HDL file 16 in aconventional text editing program, scrolls to the HDL statementcontrolling the value of signal represented by the signal symbol andhighlights that HDL statement so that the user can edit it.

Thus has been shown and described an active trace assertion system thatprocesses simulation data to evaluate the expressions of a propertydefined by an assertion and displays a representation of eachexpression, using a separate variable symbol for each of its variables.For each expression that evaluated false, the computer identifies eachvariable that caused that expression to evaluate false and distinctivelymarks that variable's symbol relative to other variable symbols withinthe display. The computer also annotates the representation of eachexpression with its corresponding evaluation time and annotates eachdisplayed variable symbol with a value of the variable it represents.When the user selects a variable symbol representing another sequence,the computer generates a similar display of the other sequence; alsodistinctively marking which variables causing any expression of theother sequence to evaluate false. The system enables a user to quicklylocate sources of property failures.

1. A computer implemented method for responding to user input bygenerating a display indicating whether a circuit described by a circuitdesign has a property expressed by an assertion based on data indicatingvalues of signals of the circuit at a succession of times, wherein theassertion expresses the property as a first sequence of expressions, andseparately defines for each expression a corresponding evaluation timerelative to the succession of times at which the expression is to beevaluated, wherein a value of each expression is a function of a valueof at least one variable representing either a value of at least onesignal of the circuit or a value of another separately defined sequenceof expressions, and wherein the circuit has the property only if everyexpression of the first sequence evaluates true at its correspondingevaluation time, the method comprising the steps of: a. displaying arepresentation of each expression of the first sequence, wherein eachexpression representation comprises a separate variable symbol for eachof its variables; and b. for each expression of the first sequence thatevaluates false at its corresponding evaluation time, identifying eachvariable that caused that expression to evaluate false and distinctivelymarking that variable's symbol relative to other variable symbols withinthe display.
 2. The method in accordance with claim 1 wherein eachvariable that caused that expression to evaluate false is distinctivelymarked by highlighting the variable.
 3. The method in accordance withclaim 1 further comprising the step of: c. annotating the displayedrepresentation of each expression of the first sequence with itscorresponding evaluation time.
 4. The method in accordance with claim 1further comprising the step of: c. annotating each displayed variablesymbol with a value of the variable it represents.
 5. The method inaccordance with claim 1 further comprising the step of: c. annotatingthe representation of each expression with a symbol indicating a resultof evaluating the expression.
 6. The method in accordance with claim 1wherein one variable symbol in the display represents a value of asecond sequence of expressions, the method further comprising the stepsof: c. responding to user input selecting the one variable symbol andrequesting a display of a representation of the second sequence bydisplaying that representation including a representation of eachexpression of the second sequence, wherein each expressionrepresentation of the second sequence comprises a separate variablesymbol for each of its variables; and d. for each expression of thesecond sequence that evaluates false at a corresponding evaluation time,identifying each variable that caused that expression to evaluate falseand distinctively marking that variable's symbol relative to othervariable symbols within the display.
 7. The method in accordance withclaim 6 further comprising the step of: e. annotating each displayedrepresentation of an expression of the second sequence to indicatewhether the expression evaluated true or false.
 8. The method inaccordance with claim 6 further comprising the step of: e. annotatingthe displayed representation of each expression of the first sequenceand of each expression of the second sequence with its correspondingevaluation time.
 9. The method in accordance with claim 1 wherein thedisplay has a horizontal axis representing a time scale, and whereineach representation of an expression of the first sequence includes anexpression symbol residing at a position relative to the horizontal axisrepresenting its corresponding evaluation time.
 10. The method inaccordance with claim 9 wherein each variable symbol representing avariable of an expression of the first sequence resides at a positionrelative to a vertical axis of the display below the symbol for thatexpression.
 11. The method in accordance with claim 1 further comprisingthe step of: c. responding to user input selecting a signal symbol andinvoking a signal trace command by processing a description of thecircuit to generate a display of a schematic diagram of a fan-in cone ofthe signal represented by the selected signal symbol.
 12. The method inaccordance with claim 1 further comprising the step of: c. responding touser input selecting a signal symbol and invoking a trace driver commandby processing a description of the circuit to generate a display of HDLcode controlling a value of the signal represented by the selectedsignal symbol.
 13. The method in accordance with claim 1 wherein thecircuit is described by source code in a text file, the method furthercomprising the step of: c. responding to user input selecting a signalsymbol and invoking an edit command by processing the text file todisplay a representation of a portion of the source code describing aportion of the circuit that generates the signal represented by theselected signal symbol.
 14. The method in accordance with claim 6further comprising the steps of: e. annotating each displayedrepresentation of an expression to indicate whether the expressionevaluated true or false; f. annotating each displayed representation ofan expression with its corresponding evaluation time; wherein thedisplay has a horizontal axis representing a time scale; wherein eachrepresentation of an expression of the first sequence and eachrepresentation of an expression of the second sequence includes anexpression symbol residing at a position relative to the horizontal axisrepresenting its corresponding evaluation time; and wherein for eachexpression of the first and second sequences, each variable symbolrepresenting a variable of that expression resides at a positionrelative to a vertical axis of the display below a position of thesymbol for that expression.
 15. The method in accordance with claim 14further comprising the step of: g. responding to user input selecting asignal symbol and invoking a signal trace command by processing adescription of the circuit to generate a display of a schematic diagramof a fan-in cone of the signal represented by the selected signalsymbol.
 16. The method in accordance with claim 14 wherein the circuitis described by source code in a text file, the method furthercomprising the step of: g. responding to user input selecting a signalsymbol and invoking an edit command by processing the text file todisplay a representation of a portion of the source code describing aportion of the circuit that generates the signal represented by theselected signal symbol.
 17. Computer-readable media containing a programwhich when read and executed by a computer causes the computer toimplement a method for responding to user input by generating a displayindicating whether a circuit described by a circuit design has aproperty expressed by an assertion based on data indicating values ofsignals of the circuit at a succession of times, wherein the assertionexpresses the property as a first sequence of wherein the assertionexpresses the property as a first sequence of expressions, andseparately defines for each expression a corresponding evaluation timerelative to the succession of times at which the expression is to beevaluated, wherein a value of each expression is a function of a valueof at least one variable representing either a value of at least onesignal of the circuit or a value of another separately defined sequenceof expressions, and wherein the circuit has the property only if everyexpression of the first sequence evaluates true at its correspondingevaluation time, the method comprising the steps of: a. displaying arepresentation of each expression of the first sequence, wherein eachexpression representation comprises a separate variable symbol for eachof its variables; and b. for each expression of the first sequence thatevaluates false at its corresponding evaluation time, identifying eachvariable that caused that expression to evaluate false and distinctivelymarking that variable's symbol relative to other variable symbols withinthe display.
 18. The computer-readable media in accordance with claim 17wherein each variable that caused that expression to evaluate false isdistinctively marked by highlighting the variable.
 19. Thecomputer-readable media in accordance with claim 17 wherein the methodfurther comprises the step of: c. annotating the displayedrepresentation of each expression of the first sequence with itscorresponding evaluation time.
 20. The computer-readable media inaccordance with claim 17 wherein the method further comprises the stepof: c. annotating each displayed variable symbol with a value of thevariable it represents.
 21. The computer-readable media in accordancewith claim 17 wherein the method further comprises the step of: c.annotating the representation of each expression with a symbolindicating a result of evaluating the expression.
 22. Thecomputer-readable media in accordance with claim 17 wherein one variablesymbol in the display represents a value of a second sequence ofexpressions, and wherein the method further comprises the step of: c.responding to user input selecting the one variable symbol andrequesting a display of a representation of the second sequence bydisplaying that representation including a representation of eachexpression of the second sequence, wherein each expressionrepresentation of the second sequence comprises a separate variablesymbol for each of its variables; and d. for each expression of thesecond sequence that evaluates false at a corresponding evaluation time,identifying each variable that caused that expression to evaluate falseand distinctively marking that variable's symbol relative to othervariable symbols within the display.
 23. The computer-readable media inaccordance with claim 22 wherein the method further comprises the stepof: e. annotating each displayed representation of an expression of thesecond sequence to indicate whether the expression evaluated true orfalse.
 24. The computer-readable media in accordance with claim 22wherein the method further comprises the step of: e. annotating thedisplayed representation of each expression of the first sequence and ofeach expression of the second sequence with its corresponding evaluationtime.
 25. The computer-readable media in accordance with claim 17wherein the display has a horizontal axis representing a time scale, andwherein each representation of an expression of the first sequenceincludes an expression symbol residing at a position relative to thehorizontal axis representing its corresponding evaluation time.
 26. Thecomputer-readable media in accordance with claim 25 wherein eachvariable symbol representing a variable of an expression of the firstsequence resides at a position relative to a vertical axis of thedisplay below the symbol for that expression.
 27. The computer-readablemedia in accordance with claim 17 wherein the method further comprisesthe step of: c. responding to user input selecting a signal symbol andinvoking a signal trace command by processing a description of thecircuit to generate a display of a schematic diagram of a fan-in cone ofthe signal represented by the selected signal symbol.
 28. The method inaccordance with claim 1 further comprising the step of: c. responding touser input selecting a signal symbol and invoking a trace driver commandby processing a description of the circuit to generate a display of HDLcode controlling a value of the signal represented by the selectedsignal symbol.
 29. The computer-readable media in accordance with claim17 wherein the circuit is described by source code in a text file, andwherein the method further comprises the step of: c. responding to userinput selecting a signal symbol and invoking an edit command byprocessing the text file to display a representation of a portion of thesource code describing a portion of the circuit that generates thesignal represented by the selected signal symbol.
 30. Thecomputer-readable media in accordance with claim 22 wherein the methodfurther comprises the step of: f. annotating each displayedrepresentation of an expression to indicate whether the expressionevaluated true or false; g. annotating each displayed representation ofan expression with its corresponding evaluation time; wherein thedisplay has a horizontal axis representing a time scale; wherein eachrepresentation of an expression of the first sequence and eachrepresentation of an expression of the second sequence includes anexpression symbol residing at a position relative to the horizontal axisrepresenting its corresponding evaluation time; and wherein for eachexpression of the first and second sequences, each variable symbolrepresenting a variable of that expression resides at a positionrelative to a vertical axis of the display below a position of thesymbol for that expression.
 31. The computer-readable media inaccordance with claim 30 wherein the method further comprises the stepof: h. responding to user input selecting a signal symbol and invoking asignal trace command by processing a description of the circuit togenerate a display of a schematic diagram of a fan-in cone of the signalrepresented by the selected signal symbol.
 32. The computer-readablemedia in accordance with claim 30 wherein the circuit is described bysource code in a text file, and wherein the method further comprises thestep of: i. responding to user input selecting a signal symbol andinvoking an edit command by processing the text file to display arepresentation of a portion of the source code describing a portion ofthe circuit that generates the signal represented by the selected signalsymbol.